//
//  TitleBtn.swift
//  weibo
//
//  Created by RDDBoss3 on 2018/7/17.
//  Copyright © 2018年 Fly. All rights reserved.
//

import UIKit

class TitleBtn: UIButton {

    /// 重载构造函数
    /// 如果 title 为 nil，则显示 “首页”；如果不为 nil，则显示 title 和 箭头图像
    /// - Parameter title: btn的title
    init(title: String?) {
        
        super.init(frame: CGRect())
        
        // 判断标题是否为 nil
        if title == nil {
            
            setTitle("首页", for: [])
            
        }
        else
        {
            
            setTitle(title! + " ", for: [])
            
            // 设置箭头图像
            setImage(#imageLiteral(resourceName: "down"), for: [])
            
            setImage(#imageLiteral(resourceName: "up"), for: .selected)
            
        }
        
        // 设置字体和颜色
        titleLabel?.font = UIFont.boldSystemFont(ofSize: 17.0)
        
        setTitleColor(UIColor.darkGray, for: [])
        
        // 设置大小
        sizeToFit()
        
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    // 重新布局子视图
    override func layoutSubviews() {
        
        super.layoutSubviews()
        
        // 判断 Label 和 imageView 是否同时存在
        guard let titleLabel = titleLabel, let imageView = imageView else {
            return
        }
        
        // 左字右图 - (默认：左图右字)
        // 方法1 启动运行时 title 和 imageView 会隔开一个 title 的宽度
        // 将 Label 的 x 向左移 imageView 的宽度
//        titleLabel.frame = titleLabel.frame.offsetBy(dx: -imageView.bounds.width, dy: 0)
        
        // 将 imageView 的 x 向右移 Label 的宽度
//        imageView.frame = imageView.frame.offsetBy(dx: titleLabel.bounds.width, dy: 0)
        
        // 方法2
        titleEdgeInsets = UIEdgeInsetsMake(0, -imageView.bounds.width, 0.0, imageView.bounds.width)
        
        imageEdgeInsets = UIEdgeInsetsMake(0, titleLabel.bounds.width, 0.0, -titleLabel.bounds.width)
        
        //上图下字
        //文字距离上边框的距离增加imageView的高度，距离左边框减少imageView的宽度，距离下边框和右边框距离不变
//        titleEdgeInsets = UIEdgeInsetsMake(imageView.bounds.height, -imageView.bounds.width, 0.0, 0.0)
        
        //图片距离右边框距离减少图片的宽度，其它不边
//        imageEdgeInsets = UIEdgeInsetsMake(0.0, 0.0, 0.0, -titleLabel.bounds.width)
        
    }
    
    /*
    // Only override draw() if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    override func draw(_ rect: CGRect) {
        // Drawing code
    }
    */

}
